/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package gestorvideoclub.jdbc;


import gestorvideoclub.enumeraciones.EstadoFranquicia;
import gestorvideoclub.Franquicia;
import java.util.List;
import java.sql.*;
import java.util.ArrayList;
/**
 *
 * @author JAVA
 */
public class FranquiciaJDBC {
    public static List<Franquicia> listadoFranquiciaBBDD(){
        List<Franquicia> lista = new ArrayList();
        String sql = "select * from franquicia";

        Connection con = null;
        try{
            con = AccesoDatos.getConexion();
            Statement st = con.createStatement();
            ResultSet rs = st.executeQuery(sql);
            //guardamos lista de franquicias de la BBDD
            while(rs.next()){
                Franquicia aux = new Franquicia();
                aux.setId(rs.getInt("Id"));
                aux.setCif(rs.getString("cif"));
                aux.setDireccion(rs.getString("direccion"));
                aux.setNombre(rs.getString("nombre"));
                EstadoFranquicia estado = EstadoFranquicia.valueOf(rs.getString("estadoFranquicia"));
                aux.setEstado(estado);
                aux.setTelefono(rs.getString("telefono"));
                lista.add(aux);
            }
            st.close();
            AccesoDatos.cerrarConexion(con);
        }
        catch(Exception e){
            System.out.println("Error al ejecutar consulta franquicia"+e.getMessage());
        }
        return lista;
    }

    /*
     * metodo utilizado para mostrar en altas de productos franquicias activas
     */
    public static List<Franquicia> listadoFranquiciaBBDDAlta(){
        List<Franquicia> lista = new ArrayList();
        String sql = "select * from franquicia where franquicia.estadoFranquicia = 'Alta'";

        Connection con = null;
        try{
            con = AccesoDatos.getConexion();
            Statement st = con.createStatement();
            ResultSet rs = st.executeQuery(sql);
            //guardamos lista de franquicias de la BBDD
            while(rs.next()){
                Franquicia aux = new Franquicia();
                aux.setId(rs.getInt("Id"));
                aux.setCif(rs.getString("cif"));
                aux.setDireccion(rs.getString("direccion"));
                aux.setNombre(rs.getString("nombre"));
                EstadoFranquicia estado = EstadoFranquicia.valueOf(rs.getString("estadoFranquicia"));
                aux.setEstado(estado);
                aux.setTelefono(rs.getString("telefono"));
                lista.add(aux);
            }
            st.close();
            AccesoDatos.cerrarConexion(con);
        }
        catch(Exception e){
            System.out.println("Error al ejecutar consulta franquicia"+e.getMessage());
        }
        return lista;
    }    
    

    public static int BuscaIdFranquicia(String nombre){
        List<Franquicia> listaF=listadoFranquiciaBBDD();
        int idT=-1;
        for(Franquicia t: listaF){
            if(t.getNombre().compareTo(nombre)==0)
            idT=t.getId();
        }
        return idT;
    }

    public static Franquicia obtenerFranquiciaPorId(int idFranquicia){
        Franquicia franquicia = null;
        String sql = " select * from franquicia where Id = "+idFranquicia;

        Connection con = null;
        Statement st = null;
        ResultSet rs = null;
        try{
            con = AccesoDatos.getConexion();
            st = con.createStatement();
            rs = st.executeQuery(sql);
            while(rs.next()){
                franquicia = new Franquicia();
                franquicia.setId(idFranquicia);
                franquicia.setEstado(EstadoFranquicia.valueOf(rs.getString("estadoFranquicia")));
                franquicia.setNombre(rs.getString("nombre"));
                franquicia.setDireccion(rs.getString("direccion"));
                franquicia.setCif(rs.getString("cif"));
                franquicia.setTelefono(rs.getString("telefono"));
            }
            rs.close();
            st.close();
        }
        catch(Exception e){
            System.out.println("Error al obtener la franquicia por su identificador "+e.getMessage());
        }

        AccesoDatos.cerrarConexion(con);
        return franquicia;
    }
}
